In recent years, personal computers and facsimile machines have become nearly indispensable tools to many businesses. In response, numerous companies have developed facsimile machines, hereinafter called fax cards, that integrate with personal computers. When a fax card receives a facsimile transmission, the received image is typically stored in computer memory for subsequent use, such as for display on a display screen or for output on a printer.
However, before a computer can display a received facsimile image, two issues related to the present invention must be addressed: (1) to reduce transmission time, most facsimile images are sent in a specially encoded data stream that requires decoding, and (2) facsimile images have a higher resolution than most computer output devices. Thus, one typically must both decode the received image data and reduce its resolution.
Beneficially, facsimile transmissions have been standardized by international agreement; currently, most transmissions are per the CCITT Group 3 specification. According to that specification, facsimile images are sent as a sequence of run length encoded data segments organized by horizontal lines that terminate with a special end-of-line (EOL) data sequence. The data segments represent the lengths (in number of picture elements, hereinafter called pixels) of, alternately, the white runs and black runs found in the original image. The encoding scheme, the EOL data sequence, and the scanning of the original are all controlled by the Group 3 specification. In particular, the original is scanned at either 3.85 (course mode) or 7.7 (fine mode) horizontal lines per millimeter (mm), with each horizontal line being 215 mm long and divided into 1728 evenly spaced pixels (other specified lengths and number of pixels are optionally permitted). Importantly, the first data segment sent for each horizontal scan line represents a run of white pixels.
As mentioned, in a typically computer/fax card system, a received facsimile image is stored before it is output. To reproduce the original image, the computer decodes the stored facsimile image, reduces its resolution to match the output, and applies the resulting data to the output device for display. Some prior art facsimile image decoding and reduction techniques degrade the image so much that even a small resolution reduction unacceptably distorts the visual image. However, it is known that gray scaling significantly improves the visual image. As used in this description and in the appended claims, "gray scale" refers to a series of at least three achromatic tones ranging between white and black and "gray scaling" refers to the process of producing such gray scale tones.
However, gray scaling a facsimile images using low cost computer systems is not usually done. This is believed to be because of the unacceptably slow execution using prior art decoding and gray scaling methods, and because those methods typically require large amounts of memory. Generally, prior art methods first completely decode the facsimile image to its bit-mapped form and then gray scale by processing the decoded bits. Since a bit-mapped representation of a facsimile image is frequently large (say about 0.5 Mbytes), and since gray scaling requires a blending of bits, the prior art methods generally require processing large amounts of data several times, thus the slow execution.
It would be advantageous to have a fast method of gray scaling a facsimile image.